<?php

namespace Rebecca\RebeccaBundle\Component;

require_once "ComponentBase.php";

use Rebecca\RebeccaBundle\Entity\ParamertrosRegistrados;

/**
 * Description of TestComponent
 *
 * @author JeyDotC
 */
class ContratosComponent extends ComponentBase {

    function getAllPeriodos($idContrato) {
        $periodosLaboralesContratos = $this->em->getRepository("RebeccaBundle:PeriodosLaboralesContratos")->findBy(
                array(
                    'idContrato' => $idContrato,
                    'fuePagado' => FALSE
                ));

        $periodosLaborales = array();

        foreach ($periodosLaboralesContratos as $periodo) {
            array_push($periodosLaborales, $periodo->getIdPeriodoLaboral());
        }

        return $periodosLaborales;
    }

    function getPeriodo($id) {
        return $this->em->getRepository("RebeccaBundle:PeriodosLaborales")->find($id);
    }

    function getParametros() {
        return $this->em->getRepository("RebeccaBundle:Parametros")->findAll();
    }

    function _getParametros($idContrato, $idPeriodo) {
        $periodosLaboralesContratos = $this->em->getRepository("RebeccaBundle:PeriodosLaboralesContratos")->findOneBy(
                array(
                    'idContrato' => $idContrato,
                    'idPeriodoLaboral' => $idPeriodo
                ));

        $parametrosRegistrados = $this->em->getRepository("RebeccaBundle:PeriodosLaboralesContratos")->findOneBy(
                array(
                    'id' => $periodosLaboralesContratos->getId()
                ));

        $parametros = $this->em->getRepository("RebeccaBundle:Parametros")->findAll();

        foreach ($parametros as $parametro) {
            foreach ($parametrosRegistrados as $parametroRegistrado) {
                if ($parametro->getId() == $parametroRegistrado->getIdParametros()->getId()) {
                    unset($parametro);
                    break;
                }
            }
        }

        $parametro = array_values($parametro);
    }

    function getParametrosRegistrados($idContrato, $idPeriodo) {
        $periodosLaboralesContratos = $this->em->getRepository("RebeccaBundle:PeriodosLaboralesContratos")->findOneBy(
                array(
                    'idContrato' => $idContrato,
                    'idPeriodoLaboral' => $idPeriodo
                ));

        $parametrosRegistrados = $this->em->getRepository("RebeccaBundle:ParamertrosRegistrados")->findBy(
                array(
                    'idPeriodosLaboralesContratos' => $periodosLaboralesContratos->getId()
                ));
        
        return $parametrosRegistrados;
    }

    function addParametrosRegistrados($idParametro, $idPeriodo, $idContrato, $formula) {

        $periodoLaboralContrato = $this->em->getRepository("RebeccaBundle:PeriodosLaboralesContratos")->findOneBy(
                array(
                    'idContrato' => $idContrato,
                    'idPeriodoLaboral' => $idPeriodo
                ));

        $parametro = $this->em->getRepository("RebeccaBundle:Parametros")->find($idParametro);

        $parametroRegistrado = new ParamertrosRegistrados();
        $parametroRegistrado->setFormula($formula);
        $parametroRegistrado->setIdParametro($parametro);
        $parametroRegistrado->setIdPeriodosLaboralesContratos($periodoLaboralContrato);

        $this->save($parametroRegistrado);
        $this->commit();
    }

    function editParametrosRegistrados($id, $formula) {
        $parametroRegistrado = $this->em->getRepository("RebeccaBundle:ParametrosRegistrados")->find($id);
        $parametroRegistrado->setFormula($formula);

        $this->update($parametroRegistrado);
        $this->commit();
    }

}

?>